7F0C8120 	0xFCC50	compression type 3
LW	S4,0080 (SP)
LUI	T9,8005
ADDIU	T9,T9,9178	;T9=80049178
SLL	T4,S4,0x2	;T4=S4->offset	(S4*4)
ADDU	S3,T4,T9
LW	T8,0000 (S3)	;T8=t#1val
OR	S4,T4,R0	;S4=T4: table offset
OR	S1,R0,R0	;S1=0
BLEZ	T8,0xFCCB4	;technically should never take this branch
LUI	T5,8005
ADDIU	T5,T5,91E0	;T5=800591E0
ADDU	S2,T4,T5
OR	S0,S8,R0	;S0=S8: p->samples
OR	A0,S0,R0	;A0=S0=S8
//7F0C8158 	0xFCC88:	loop to generate a sample table for each byte of pixel data
OR	A1,S5,R0	;A1=S5: width*height
JAL	7F0C91D0	;generate sample table
LW	A2,0000 (S2)	;A2=t#3val
//7F0C8164 	0xFCC94:
MULTU	S6,S7
LW	T3,0000 (S3)	;T3=t#1val
ADDIU	S1,S1,0001	;S1++
SLT	AT,S1,T3
MFLO	T6		;T6=width*height
ADDU	S0,S0,T6	;p->samples+=width*height
BNEL	AT,R0,0xFCC88	;branch if pixeldata count < actual
OR	A0,S0,R0	;A0=p->samples for next chunk of data
//7F0C8184 	0xFCCB4:
LUI	T7,8005
ADDU	T7,T7,S4
LW	T7,91AC (T7)	;T7=800591AC+offset: t#2val
SLL	T4,S5,0x2
SUBU	T4,T4,S5	;T4=width*height*3
BEQ	T7,R0,0xFCCD8	;branch if no alpha needed
ADDU	A0,S8,T4	;A0=p->samples + width*height*3
JAL	7F0C9A48	;fetch alpha bits
OR	A1,S5,R0	;A1=width*height
//7F0C81A8 	0xFCCD8:
LW	T9,30AC (SP)
LW	T8,0088 (SP)
LW	T5,0080 (SP)
OR	A0,S8,R0
ADDU	S0,T9,T8
OR	A3,S0,R0
OR	A1,S6,R0
OR	A2,S7,R0
JAL	7F0C9DA4	;generate and link final image
SW	T5,0010 (SP)
//7F0C81D0 	0xFCD00:
BEQ	R0,R0,0xFD08C
OR	S1,V0,R0
